ホームに戻る
出典 :
関連 :
目次 :
※ この記事は書きかけです。内容は正確ではありません。
WPFアプリケーションにおけるコントロールの再描画
Windows Formsでは Refresh() メソッドでコントロールを再描画することができたが、WPFでは同様のメソッドは標準実装されていない。
コントロールを再描画するには以下のような処理を実装する必要がある。
using System.Windows.Threading;
public class HogeWindow
{
:
/// <summary>
/// 現在メッセージ待ち行列の中にある全てのUIメッセージを処理します。
/// </summary>
private void DoEvents()
{
DispatcherFrame frame = new DispatcherFrame();
var callback = new DispatcherOperationCallback(obj =>
{
((DispatcherFrame)obj).Continue = false;
return null;
});
Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, callback, frame);
Dispatcher.PushFrame(frame);
}
:
}
ウィンドウを更新する場合は、上記の DoEvents() メソッドをコールし、キューイングされたUIメッセージを処理するとよい。